Data Loading¶
This is the shape of my cleaned dataframe (29826, 20)
Regression Analysis¶
Descriptive Stats¶
-------------------------------------------------- This is the Statistics of beta12 for industry Agriculture count 280.000000 mean 0.997420 std 1.808401 min -13.626291 max 7.236467 skew -2.111634 kurtosis 17.349735 1% -5.470130 5% -0.901640 25% 0.263338 50% 0.964077 75% 1.779277 95% 3.585183 99% 5.401228 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Agriculture count 270.000000 mean 1.030200 std 1.174713 min -6.279531 max 5.194328 skew -0.495951 kurtosis 6.525735 1% -2.229060 5% -0.618886 25% 0.377387 50% 0.975599 75% 1.622419 95% 3.020738 99% 4.377542 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Agriculture count 260.000000 mean 1.054347 std 1.118272 min -6.279531 max 6.109715 skew -0.260625 kurtosis 9.672404 1% -1.445657 5% -0.255853 25% 0.419113 50% 1.023529 75% 1.582194 95% 2.619045 99% 4.976245 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Mining count 280.000000 mean 1.575120 std 2.662641 min -7.421781 max 24.563040 skew 3.784703 kurtosis 29.026922 1% -3.448998 5% -0.969161 25% 0.352884 50% 1.255164 75% 2.466525 95% 4.712876 99% 8.785926 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Mining count 270.000000 mean 1.623480 std 2.024372 min -2.853700 max 24.563040 skew 5.875517 kurtosis 61.524379 1% -1.336304 5% -0.310671 25% 0.628868 50% 1.291622 75% 2.250437 95% 4.249271 99% 7.547480 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Mining count 260.000000 mean 1.609095 std 1.926407 min -2.853700 max 24.563040 skew 6.843378 kurtosis 77.927563 1% -1.104722 5% -0.175798 25% 0.720130 50% 1.388497 75% 2.165941 95% 3.622002 99% 6.328930 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Construction count 279.000000 mean 1.420995 std 2.133107 min -14.919079 max 16.389889 skew 0.009858 kurtosis 21.740848 1% -3.333170 5% -1.065246 25% 0.420196 50% 1.438807 75% 2.221275 95% 3.677497 99% 8.212191 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Construction count 269.000000 mean 1.423620 std 1.331493 min -2.127100 max 13.323400 skew 2.806438 kurtosis 23.828791 1% -1.626752 5% -0.224107 25% 0.786873 50% 1.343329 75% 2.014048 95% 3.146081 99% 4.968525 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Construction count 259.000000 mean 1.358016 std 1.016633 min -2.127100 max 6.084580 skew 0.840437 kurtosis 3.997380 1% -0.866198 5% -0.068309 25% 0.763660 50% 1.353079 75% 1.788243 95% 2.715604 99% 4.974648 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Manufacturing count 280.000000 mean 0.530053 std 11.023330 min -181.331126 max 6.479868 skew -16.207748 kurtosis 268.267433 1% -4.708531 5% -0.883197 25% 0.391633 50% 1.104279 75% 1.967783 95% 4.159367 99% 5.310742 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Manufacturing count 270.000000 mean 0.630523 std 11.182594 min -181.331126 max 8.058061 skew -16.131658 kurtosis 263.459987 1% -2.006415 5% -0.076911 25% 0.558165 50% 1.117990 75% 1.771339 95% 3.332186 99% 5.196892 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Manufacturing count 260.000000 mean 0.659723 std 11.375989 min -181.331126 max 6.044516 skew -15.927952 kurtosis 255.788821 1% -0.199672 5% 0.085279 25% 0.713801 50% 1.186822 75% 1.836695 95% 3.088104 99% 4.901771 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Transportation count 276.000000 mean 1.299124 std 4.563964 min -4.371247 max 72.214052 skew 13.798919 kurtosis 213.743342 1% -2.048209 5% -0.561321 25% 0.190096 50% 0.811515 75% 1.526750 95% 3.948618 99% 7.783643 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Transportation count 266.000000 mean 1.019662 std 1.300148 min -6.973444 max 7.706501 skew 0.360742 kurtosis 10.386395 1% -1.317232 5% -0.229714 25% 0.360565 50% 0.803103 75% 1.502688 95% 3.033214 99% 5.307444 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Transportation count 256.000000 mean 0.954603 std 1.124333 min -4.965150 max 6.773695 skew 0.261177 kurtosis 8.198299 1% -1.774840 5% -0.163114 25% 0.367078 50% 0.816156 75% 1.441328 95% 2.692101 99% 4.304936 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Wholesale count 279.000000 mean 1.238500 std 2.208291 min -17.534871 max 12.175071 skew -1.040178 kurtosis 23.542948 1% -4.193619 5% -1.022063 25% 0.452779 50% 1.042579 75% 1.967255 95% 4.052771 99% 9.368517 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Wholesale count 269.000000 mean 1.192170 std 1.616088 min -17.534871 max 7.830801 skew -5.419872 kurtosis 68.018383 1% -1.983844 5% -0.388944 25% 0.643688 50% 1.113095 75% 1.853168 95% 2.897620 99% 4.321993 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Wholesale count 259.000000 mean 1.232957 std 0.914977 min -2.445744 max 4.863640 skew 0.048060 kurtosis 2.071759 1% -1.196874 5% -0.127725 25% 0.674668 50% 1.189590 75% 1.712616 95% 2.765729 99% 3.573589 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Retail count 280.000000 mean 1.569291 std 6.154309 min -7.703884 max 98.999559 skew 14.388278 kurtosis 227.209348 1% -3.075335 5% -0.724909 25% 0.380947 50% 1.108506 75% 1.794577 95% 3.222091 99% 11.016428 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Retail count 270.000000 mean 1.175037 std 1.090978 min -1.741767 max 10.320110 skew 2.573241 kurtosis 18.891360 1% -0.965303 5% -0.208526 25% 0.582244 50% 1.122946 75% 1.628941 95% 2.652455 99% 4.605123 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Retail count 260.000000 mean 1.230422 std 1.032380 min -1.274813 max 9.212236 skew 2.542861 kurtosis 14.806514 1% -0.459765 5% 0.029991 25% 0.628997 50% 1.091230 75% 1.616721 95% 2.857873 99% 4.885657 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Finance count 279.000000 mean 0.820320 std 1.659205 min -8.149152 max 18.772201 skew 4.105713 kurtosis 52.282667 1% -1.728019 5% -0.500145 25% 0.062729 50% 0.588996 75% 1.321052 95% 2.995295 99% 4.690196 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Finance count 269.000000 mean 0.728181 std 0.909385 min -5.590418 max 4.528124 skew -0.840829 kurtosis 9.724247 1% -0.841327 5% -0.410526 25% 0.178024 50% 0.664427 75% 1.189339 95% 2.215998 99% 2.746929 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Finance count 259.000000 mean 0.742345 std 0.849339 min -5.590418 max 4.528124 skew -0.971805 kurtosis 12.688149 1% -0.844196 5% -0.191261 25% 0.264718 50% 0.651131 75% 1.162654 95% 2.161019 99% 2.690817 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Service count 277.000000 mean 1.049854 std 2.339885 min -13.769049 max 9.067857 skew -1.627683 kurtosis 10.424422 1% -7.159674 5% -1.641136 25% 0.112553 50% 1.195505 75% 2.072010 95% 3.925350 99% 6.908727 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Service count 267.000000 mean 1.380076 std 1.907620 min -13.769049 max 10.663611 skew -1.204687 kurtosis 19.145424 1% -3.013172 5% -0.431400 25% 0.570809 50% 1.249907 75% 1.945961 95% 4.012641 99% 7.622209 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Service count 257.000000 mean 1.388460 std 1.770587 min -13.769049 max 9.067857 skew -2.029190 kurtosis 24.426290 1% -2.632256 5% -0.165257 25% 0.691525 50% 1.282689 75% 1.905594 95% 3.856325 99% 6.221149 Name: beta36, dtype: float64 -------------------------------------------------- This is the Statistics of beta12 for industry Public count 225.000000 mean 0.362579 std 18.022730 min -261.110642 max 43.787097 skew -13.664995 kurtosis 200.306627 1% -7.347083 5% -2.178471 25% 0.029771 50% 0.963463 75% 2.156740 95% 5.519397 99% 13.701384 Name: beta12, dtype: float64 -------------------------------------------------- This is the Statistics of beta24 for industry Public count 215.000000 mean 0.161167 std 18.252433 min -261.110642 max 43.787097 skew -13.768051 kurtosis 198.884160 1% -4.420043 5% -0.988224 25% 0.105809 50% 0.925763 75% 1.946109 95% 4.340273 99% 8.048900 Name: beta24, dtype: float64 -------------------------------------------------- This is the Statistics of beta36 for industry Public count 205.000000 mean 0.122245 std 18.732942 min -261.110642 max 43.787097 skew -13.364330 kurtosis 188.022744 1% -12.439006 5% -0.490747 25% 0.228629 50% 0.961437 75% 2.005900 95% 4.237056 99% 8.207925 Name: beta36, dtype: float64
Std & Mean & Time Series Graph¶
Beta Graph Findings¶
Betas measured using 12 months of data are more volatile than the betas measured using 24 months and 36 months of data, and they often have more abnormal behaviors of dropping below 0, indicating given industry move in opposite direction of the market. Therefore, the beta measured using 12 months of data might not be that accurate and trustworthy to represent the volatility of given stocks.
Betas measured using 36 months of data are much more stable than the remaining two with siginicant lower standard deviation overall. Most of betas using 36 months of data are located around 1, showing given industries move in the same direction as the market.
There are betas located above 1 (mostly beta12), showing that most of the industries are more volatile than the market
Most of the betas are located around 1, showing the overall stock of the indutries are moving with the market
There are a few betas (mainly beta measured by 12 months of data) that are lower than 0, reflecting the uncommon event that the stock of the given industry move in opposite direction of the market.
Only considering beta36, Wholesale, Agriculture, Retail, and Finance industries seems to have a more stable beta, while the beta for Service and Public are more fluctuating with more extreme values.
Volatility Estimation¶
Volatility Observation & Analysis¶
According to the volatility graphs, it seems that the systematic volatility contribute less to the total volatility than the idiosyncratic volatility. This reflects the nature of idiosyncratic volatility (Stock-specific risk) being more prominent in periods of market stability or when portfolios consist of stocks with significant stock-specific risks. Systematic volatility (market risk), by contrast, impacts all stocks similarly, and its contribution can appear smaller, especially when the market is stable or when diversification reduces its impact on your portfolio.
All curve of volatilities follows roughly the same shape. Changes in either type of volatility affect the total volatility, causing all three to move in a similar pattern. Additionally, both types of volatility are influenced by market conditions, and during periods of heightened uncertainty, both systematic and idiosyncratic risks tend to rise together, leading to similar shapes in their respective graphs.
Individual dots represent single stocks' behavior. According to the graph Finance, Retail, and Constructions industries have more extreme volatilities. Remaining industries' volatility are more clustered together.
There is a noticable amount of systematic volitility that are below 0, which is due to our method of calculation and the negativity of beta values. Therefore, there are far less volatility below 0 using beta36, due to its stable nature.
Beta, Volatility and Stock Returns¶
Beta Portfolio¶
Average return rate for high beta equal portfolio constructed by beta12 is 0.24620297987573744 Average return rate for high beta equal portfolio constructed by beta24 is 0.23353396015121697 Average return rate for high beta equal portfolio constructed by beta36 is 0.2560207106718412
Average return rate for high beta weighted portfolio constructed by beta12 is 0.11784574825222728 Average return rate for high beta weighted portfolio constructed by beta24 is 0.22034304796757534 Average return rate for high beta weighted portfolio constructed by beta36 is 0.2438405201316527
Idiosymcratic Portfolio¶
Average return rate for high ivol weighted portfolio constructed by beta12 is 0.38546682524194414 Average return rate for high ivol weighted portfolio constructed by beta24 is 0.35080778354534675 Average return rate for high ivol weighted portfolio constructed by beta36 is 0.3818689199053598
Average return rate for high ivol weighted portfolio constructed by beta12 is 0.450893966891675 Average return rate for high ivol weighted portfolio constructed by beta24 is 0.43440270841142986 Average return rate for high ivol weighted portfolio constructed by beta36 is 0.4767505103075588
Discussion & Conclusion¶
Portfolio Construction Using Beta¶
Based on the result of our beta portfolio, it seems that the equal-weighted beta portfolio performs slightly better than the value-weighted beta portfolio with more consistenly higher average of portfolio return. The equal-weighted beta portfolio likely performs better than the value-weighted beta portfolio because it gives more importance to smaller companies, which tend to grow faster and provide higher returns. On the other hand, the value-weighted portfolio focuses more on larger companies, which are more stable but may not grow as quickly. This makes the equal-weighted portfolio deliver more consistent and slightly better average returns overall.
The portfolio constructed by beta using 36 months of data performs slightly better than the remaining betas for portfolio constructions. However, since we only sampled once, this is not a convincing evidence that beta36 performs better than the remaining.
Though portfolio with higher beta seems to have a higher and more stable portfolio return based on our result, this result is highly influenced by the extreme event in 2009. From the graphs, we can see the return difference is fluctuating around 0, and even the portfolio with stocks having low beta will have a better performance in about half of the time. This is the same for both value-weighted and equal-weighted portfolio. This is consistent with real-world behavior, especially considering the low-beta anomaly and potential overpricing of high-beta stocks. This reflects the idea that high-beta stocks, while riskier, do not always offer better returns, and low-beta stocks can perform better, particularly in volatile or uncertain market conditions. For low-beta portfolios, while traditionally expected to deliver lower returns due to lower risk, low-beta stocks often provide a smoother ride and may outperform in volatile or declining markets, offering solid returns with less risk.
Portfolio Construction Using idiosyncratic volatility¶
The average portfolio return for portfolio constructed by stocks with higher idiosyncratic volatility is positive. Moreover, it seems that the portfolio with higher idiosyncratic volatility performs better than the portfolio with lower idiosyncratic volatility for both value-weighted and equal weighted portfolio, which might be highly influenced by extreme event in 2009. Overall, this suggests that investors may be rewarded for taking on additional stock-specific risk.
The value-weighted portfolio has a better average portfolio return than the equal-weighted portfolio. The better average portfolio return of the value-weighted portfolio in high idiosyncratic volatility portfolios is likely driven by the larger, more stable companies having more influence in the value-weighted structure. These firms can withstand stock-specific volatility better than smaller, riskier stocks that dominate the equal-weighted portfolio, leading to superior performance.
Comparison & Conclusin¶
The higher average return for all portfolio is likely due to a spike in 2009 which has a really high return compared with the stock return in low beta and low volitility portfolio.
For this trial, portfolio constructed by stocks having higher idiosyncratic volatility on average having a higher portfolio return than the portfolio constructed by stocks having high beta. This is because stock-specific risks were more rewarded than market-wide risks. High-beta stocks’ sensitivity to market conditions may have hindered their performance, especially if the market environment was volatile or underperforming.
Value-weighted portfolio overall performs better than equal weighted portfolio.